Motion to Connect to Kiosk

ABSTRACT

A user may associate a mobile device such as a smartphone with a public device by imitating a movement pattern for a target with a movement pattern of the mobile device. The physical movement of the smartphone may be compared to the movement data for the target. If there is a match, the public device and the mobile device may be associated with one another. The association may allow a user to interact with the public device using the smartphone.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. application Ser. No.14/657,120, filed Mar. 13, 2015, which claims priority to provisionalapplication No. 61/955,345 that was filed on Mar. 19, 2014.

BACKGROUND

Many multi-device products and applications require sharing an“association key” as a component of their setup and/or use. For example,cordless phones typically require a personal identification number(“PIN”) code shared between the handset and a base station. As anotherexample, wireless access points may require a WEP password sharedbetween the client and the access point. Smart displays are becomingpopular in many locations (e.g., an interactive mall directory, LCDstore signs, smart TVs, etc.) and offer an opportunity for a user toassociate a device, such as a smartphone, with the smart display tointeract with it.

Associating a phone and a display may be relevant in a variety ofapplications such as multi-device games including TV games playedthrough a mobile device. Similarly, applications that use phones ascontrollers, such as TV shopping sites that use the phone for inputand/or public device that share coupons with phones, may require anassociation between a mobile device and the display. A variety oftechniques exist to perform the pairing such as displaying analphanumeric code and having a user enter the code. Another techniquemay display an image or QR code and ask the user to take a picturethereof.

BRIEF SUMMARY

According to an implementation of the disclosed subject matter, a servermay receive first movement data for a first target on a display of apublic device. It may receive second movement data for a first mobiledevice that is distinct from the public device. The server may be at adifferent location than the public device and the first mobile device.In some configurations, the server may be a part of the public device.The first movement data may be determined to match the second movementdata. The public device may be associated with the first mobile devicebased on the determination of a match or a similarity above a predefinedthreshold value.

In an implementation, a server is disclosed that is configured toreceive first movement data for a first target on a display of a publicdevice. The server may receive second movement data for a first mobiledevice that is distinct from the public device. The server may be at adifferent location than the public device and the first mobile device.In some configurations, the server may be a part of the public device.The server may be configured to determine that the first movement datamatches the second movement data and associate the public device withthe first mobile device based on the determination of a match or asimilarity above a predefined threshold value.

A system is disclosed that includes a server configured to send firstmovement data for a first target on a display of a public device. Theserver may receive second movement data for a first mobile device thatis distinct from the public device. The server may be at a differentlocation than (and physically distinct from) the public device and thefirst mobile device. In some configurations, the server may be a part ofthe public device. The server may be configured to determine that thefirst movement data matches the second movement data. It may associatethe public device with the first mobile device. The association betweenthe mobile device and the public device may be based on thedetermination that the first movement data matches the second movementdata.

In an implementation, a system according to the presently disclosedsubject matter includes a means for receiving and/or sending a firstmovement data for a first target on a display of a public device. Thesystem may include a means to receive a second movement data for a firstmobile device that is distinct from the public device. The system mayinclude a means for determining that the first movement data matches thesecond movement data and associating the public device with the firstmobile device.

As disclosed herein, a server may send or provide instructions for firstmovement data for a first target to a public device. The public devicemay include a display on which the first target is shown. The server mayreceive second movement data for a first mobile device that is distinctfrom the public device. The server may be at a different physicallocation than the public device and the first mobile device or it may beintegrated with the public device. The server may determine that thefirst movement data matches the second movement data. The public devicemay be associated with the first mobile device. The association may bebased on the determination that the first movement data matches thesecond movement data.

In an implementation, a system according to the presently disclosedsubject matter includes a means for receiving first movement data for afirst target on a display of a public device. In some configurations,the system may include a means for sending the first movement data forthe first target to the public device. In such configurations, it may,therefore, not be required that the system receives the first movementdata from the public device because it already knows what the movementdata are. The system may include a means for receiving second movementdata for a first mobile device that is distinct from the public device.The system may include a means for determining that the first movementdata matches the second movement data and a means for associating thepublic device with the first mobile device. The association may be basedon a determination that the first movement data matches the secondmovement data.

Additional features, advantages, and implementations of the disclosedsubject matter may be set forth or apparent from consideration of thefollowing detailed description, drawings, and claims. Moreover, it is tobe understood that both the foregoing summary and the following detaileddescription provide examples of implementations and are intended toprovide further explanation without limiting the scope of the claims.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings, which are included to provide a furtherunderstanding of the disclosed subject matter, are incorporated in andconstitute a part of this specification. The drawings also illustrateimplementations of the disclosed subject matter and together with thedetailed description serve to explain the principles of implementationsof the disclosed subject matter. No attempt is made to show structuraldetails in more detail than may be necessary for a fundamentalunderstanding of the disclosed subject matter and various ways in whichit may be practiced.

FIG. 1 shows a computer according to an implementation of the disclosedsubject matter.

FIG. 2 shows a network configuration according to an implementation ofthe disclosed subject matter.

FIG. 3 shows an example of a smartphone mimicking a pattern shown on apublic device as disclosed herein.

FIG. 4 is an example process for associating a mobile device with apublic device based on a comparison of a target's movement data to amobile device's movement data as disclosed herein.

FIG. 5 shows an example system for associating a mobile device with apublic device based on a comparison of a target's movement data to amobile device's movement data as disclosed herein.

FIG. 6 shows an example system in which a server sends target movementdata to a public device for display. The target movement data may becompared to movement data from a mobile device to associate the publicdevice with the mobile device as disclosed herein.

FIG. 7 shows an example process in which a server sends target movementdata to a public device for display and determines whether or not themovement data from a mobile device is similar to the target movementdata as disclosed herein.

DETAILED DESCRIPTION

As disclosed herein, a motion-based technique may be utilized to connecta mobile device (e.g., a smartphone or tablet) to a public device. Themobile device, therefore, must know that it is in front of a particularpublic device (e.g., a public display). The association between the twodevices, the mobile device and the public device, may be based on agesture and a motion. For example, the public device may direct a userto follow a target, such as a bouncing ball, that is shown on thedisplay with the user's mobile device. The target may have a patternthat varies in time and/or space and in one, two, or three dimensions.The motion may be, for example, a shaking motion, a predefined path of atarget, or a combination thereof. Matching the visual data on the screenwith the accelerometer sensor data from the mobile device's inertialmeasurement unit (“IMU”), for example, may provide a fast, reliable, andfun technique for associating the two devices. Movement of the mobiledevice may, therefore, vary in time and/or space and be in one, two orthree dimensions in an effort to mimic the pattern of the target shownon the public device.

In an implementation, a determination is made that a particular mobiledevice belonging to a user is in front of a particular public device.The mobile device may be associated with a particular user and/or useraccount and, thus, be a “private” device. As disclosed herein, a gatedpath may be created between a cloud-based service that controls thepublic device and a user's mobile device after an association betweenthe public device and the mobile device is made. In some configurations,a user may have a web browser, or application operating on the mobiledevice, access a web page that uses, for example, JavaScript and/orHTML5 to capture accelerometer data (or other IMU-based data) from themobile device. The public device may show an application waiting for auser connection and instructions for a user to move the mobile device ata particular tempo and/or at least one direction. A user, therefore, maymimic with the user's mobile device a gesture or pattern as defined by atarget on the public device (e.g., a bouncing ball or racecar makingleft and/or right turns). The public device may show an indication of aperson making a gesture or pattern. A mobile device's movement data,which may be generated by sensors on the mobile device as a user movesthe mobile device in a pattern (e.g., trace a shape) shown on the publicdevice and/or in response to cues shown on the screen (e.g., driving aracecar shown on the public device), may be received by a cloud servicetemporally near (e.g., less than two minutes) the time at which thepublic device has shown a particular pattern. This may provide a higherdegree of assurance that the mobile device and the public device are atthe same place because one would need to be physically in front of thepublic device to see the movement pattern. The movement of the targetcan be complex; for example, a ball can be bouncing in two dimensions.In some implementations, the movement of the target may include severaldifferent shapes (e.g., a circle, square, triangle, trapezoid, or otherpolygons or shapes). As another example, an abridged version of a gamesuch as “Whack-a-mole” may be displayed on the public device. A user mayplay the game with the user's mobile device to associate mobile devicewith the public device. The movement of the user's mobile device as theuser plays the game may be compared, for example by the cloud service,with an expected movement based on where the public device makes a“mole” appear in the game. In some configurations, the cloud service mayselect a pattern for a particular display such as rhombus, circle,square, and trapezoid. Other movements with the mobile device may beused according to implementation disclosed herein, such as shaking themobile device. A user may trace the pattern shown on the public devicewith a mobile device and the movement data from the mobile device (e.g.,data generated from sensors on the mobile device such as anaccelerometer, magnetometer, a gyroscope, and/or GPS) may be compared tothe time at which the pattern was shown on the public device to verifythe user's presence of the user in front of the particular display.

FIG. 3 shows an example of a phone 320 mimicking the movement pattern330, 340 shown on a public device 310. The public device 310 may show aseries of dots or hoops 310 and instruct a user to connect the dots 330or fly a character on the screen through the hoops 330 using the pathway340 indicated. The user's position relative to the pathway shown on thepublic device 310 may be indicated with a marker such as a character, acursor, a symbol, etc. The user may attempt to mimic the pathway 340with the mobile device 320 as shown at 350.

In an implementation, a web service or cloud service may send aninstruction web page to a public device that indicates to the publicdevice a pattern or game in which a target moves. The target may be, forexample, the bouncing ball or racecar. A user may load or play the webpage from the same cloud service that captures accelerometer data fromthe user's smartphone or mobile device to capture the overall motion ofthe device. A user may move or shake the mobile device to match images,graphics, and/or sounds on the public device. The mobile device maycollect (e.g., buffer and/or store) the movement data of the phone andsend it to the cloud service. The cloud service may compare the movementof the mobile device with the movement data for the target (e.g., theinstructions set to the public device on how to move the target). Thecloud service may determine a match exists based on the comparison andsend a new web page to the public device and the mobile device. The newweb page on the mobile device may indicate that a secure associationbetween the mobile device and the public device has been made. Thedegree of security required may vary depending on the type ofapplication being run on the public device. The level of security may beadjusted to match the application by utilizing longer or shortersequences of images, graphics, and/or sounds for a user to imitate witha mobile device. A less secure key will have a smaller number offeatures (e.g., images, graphics, and/or sounds) to match. Moreover, amatch does not need to be an exact (e.g., 100% identity) match in orderfor an association between the public device and the mobile device to bedeemed a match. The level of stringency demanded for a match to bedetermined (e.g., 50% identity or similarity or higher) may beconfigured as needed for an implementation. A higher degree of identityor similarity between the target movement data and the mobile device'smovement data may be necessary in some configurations. In the initialinteraction in which a mobile device is associated with a public device,a user's identity is not relinquished. This user and/or device anonymitymay persist until the user indicates that the user would like to make apurchase, for example, based on content shown on the public device(e.g., purchase concert tickets).

In some configurations, a mobile device may connect to a cloud servicethat controls many public devices. The mobile device may send themovement data for the mobile device based on a gesture or motionperformed in which the mobile device is moved in an approximate patternto that shown on the public device. In some instances, the mobile devicemay prompt the user to enter a directory and/or indicate an approximatelocation of the user separate from the IMU data (e.g., orientation dataand/or motion data from an accelerometer). GPS data indicating the lastknown location of the mobile device may be sent with the mobile device'smovement data in some configurations to, for example, narrow the numberof public devices in proximity to the mobile device. This may lessen thecomputational burden by having the server compare the movement data fromthe mobile device to the movement data of only those screens determinedto be in a specified proximity of the mobile device's last knownlocation. Thus, based on the approximate location of the user, the cloudservice may only compare the mobile device's movement data to a one or afew targets' movement data (e.g., movement of what is shown on thepublic device). As another example, a QR code may be present on thepublic device, that, when scanned by the mobile device, opens the webpage that records the accelerometer data and/or identifies a specificpublic device. As another example, a wireless access point signature maybe utilized to narrow the mobile device's location. Other methods ofproviding an approximate location of a mobile device relative to aspecific public device may be utilized with the implementationsdisclosed herein.

In an implementation, an example of which is provided in FIG. 4, aserver may receive first movement data for a first target on a displayof a public device at 410. A target may be a visual object on thedisplay and it may include an audio component. For example, the targetmay be a bouncing ball. The movement data for target may bepredetermined by a cloud service provided by a server. The server (e.g.,the cloud service) may transmit instructions for movement of the targetto the public device and/or other visual and audio instructions asneeded.

The public device may include a display, a processor, a communicationmodule, and/or at least one speaker. The communication module mayreceive and send data between the public device, the cloud service,and/or a mobile device (e.g., a smartphone, a tablet, etc.). Theprocessor may instruct the display to show movement of the target. Theprocessor may indicate to the cloud service that the target has beenshown according to the motion the cloud service provided (e.g., it maysend movement data for the target). The public device may be positionedin any area viewable or accessible to the general public such as in abusiness, store, mall, etc. The public device is intended to beaccessible by one or more individuals per session.

The server may receive second movement data corresponding to a firstmobile device that is distinct from the public device at 420. The secondmovement data may indicate the mobile device's physical movement. Forexample, if a user moves a device from a first point to a second point,the second movement data may indicate a movement in terms of a distanceand an angle or as relative coordinates. As described earlier, a user'smobile device may connect to a web page that can obtain or receive themobile device's movement data. The second movement data may indicate themotion of the mobile device based on sensor data generated by thedevice's IMU and/or accelerometer, for example. The server may bephysically distinct and in distinct locations from the public device andthe mobile device. The server operating a cloud service may compare themovement data for the target as received by from the public deviceand/or as sent by the server (or cloud service) to the movement data ofthe mobile device.

The server may be a part of or integrated with the public device in someinstances. In such cases, the server may drive the display of the publicdevice (e.g., display of the first target and/or other content after anassociation is made between a mobile device and the public device),receive, directly or indirectly, the movement data from a user's mobiledevice, and perform a comparison of the movement data for the firsttarget to the mobile device's movement data. For example, the server maybe connected to a cloud service. The mobile device may operate a service(e.g., an application) that causes the mobile device to send itsmovement data to the cloud service. The cloud service may segregatemovement data for multiple mobile devices based on location (e.g., basedon GPS data sent with the movement data) and send movement data for oneor more mobile devices to the public device (e.g., the server) based onthe location data. The server may receive the movement data from thosemobile devices that have been determined to be in predeterminedproximity (e.g., 200 meters, one kilometer, etc.) to the public device.A processor of the public device (e.g., the server) may compare themobile device movement data that it receives from the cloud service tothe movement data for the target to determine whether there is a matchor sufficient similarity. If a match or sufficient similarity exists,the public device may associate with the determined mobile device asdisclosed herein.

In some configurations, the first movement data for the target shown onthe display of the public device and/or the second movement data formobile device may be time-stamped. For example, the first movement datamay be generated at a first time and the second movement data may begenerated at a second time. The first time and the second time may betransmitted by the respective devices to the server and/or webapplication as described earlier. The server may determine a differencebetween the time-stamp associated with the first movement data and thesecond movement data. In some configurations, the server may determinethat the difference is not below a timing threshold value (e.g., twominutes or other such predetermined timing threshold). The server mayreject a match determination if the difference between the first timeand the second time exceeds the timing threshold.

A first identifier corresponding to the public device may be received bythe server, for example, with the first movement data. A secondidentifier corresponding to the first mobile device may be similarlyreceived. The first identifier may uniquely identify the public devicefrom one or more other public devices. An alphanumeric code may form anidentifier and may be associated with the movement data for the targetsuch that the server may know the location of the public device. Forexample, each public device may be assigned a unique alphanumeric codethat is stored as a database table. The server may parse the code fromthe movement data and perform a search of the database for the code toidentify the source (e.g., the public device) of the movement data senttherewith. The code may indicate an approximate location for the publicdevice. The location determined from the code may be compared tolocation data for a mobile device to narrow the movement data to becompared to only those devices that are within a predefined proximity toone another. The mobile device may transmit a second identifier with itsmovement data. The server may utilize the first identifier and secondidentifier as a component of a hash table to uniquely identify multiplemobile devices associated with multiple public devices. In someinstances, the target may be shown on multiple public devices. Thecomparison of the first movement data to the second movement data may bebased on the first identifier and the second identifier. For example,the first identifier may be utilized to discern a first public devicefrom a second public device showing the same target (therefore havingthe same movement data).

The first movement data may be determined to match the second movementdata at 430. As described above, the server or cloud service may send anindication to the mobile device that is associated with the publicdevice. The public device and the mobile device may be associated withone another at 440. The manner by which the mobile device and the publicdevice may be associated may include, for example, the mobile deviceand/or the public device sharing data between each other or via a thirdparty service (e.g., a cloud service). The data may include navigationalinput from the mobile device to the display, purchase information forcontent on the display, data related to the ongoing session between thepublic device and the mobile device, etc. The association between thepublic device and the mobile device may permit the user to interact orcontrol what is displayed on the sign. For example, a user may browse aselection of electronic books and download one to the user's mobiledevice. The interaction between the public device and the mobile devicemay be via the cloud service. For example, the cloud service may directthe display to show a web page and may redirect the user's web browserto the same web page. As the user moves the mobile device, the movementmay be relayed, via the cloud service, to the public device and appearthereon. The public device may be kiosk at which a user may make apurchase of electronic content or other goods and/or services (e.g.,concert tickets). A user may browse the content a kiosk offerssubsequent to the association therewith. In some configurations, theassociation between the public device and the first mobile device mayallow the two devices to directly communicate with one another. Forexample, the first mobile device may connect to a wireless access pointto which the sign is connected if the server determines the secondmovement data matches the first movement data as described above. Thus,a command may be received from the mobile device (e.g., a purchase ordownload request) and an indication of the command may be sent, directlyor indirectly, to the public device. In some instances, the command fromthe mobile device may cause the public device to move a cursor before acommand is received to make a selection (e.g., to make a purchase).

The server may receive third movement data for a second target on thedisplay of the public device. For example, the sign may be compatiblewith multiple users simultaneously interacting with it. The publicdevice may show two different targets with two different shapes and/orpatterns. The server may receive fourth movement data for a secondmobile device. The server may determine that the third movement datamatches the fourth movement data and associate the public device withthe second mobile device. The public device may have a mobiledevice-specific marker for each device connected to it. The publicdevice may allocate a portion of its display to each user. For example,if two users' mobile devices are connected, the display may devote halfof its display to each user.

According to an implementation of a system, as shown in the example inFIG. 5, a server 505 may be configured to receive a first movement datafor a first target on a display of a public device 550 at 510 asdescribed above. The server 505 may include a processor 512, acommunication module 514, and be connected to a database 516. Thedatabase 516 may store target pattern data that can be accessed by acloud service operating on the server 505. The database 516 may storeone or more targets' movement data and/or the movement datacorresponding to one or more mobile devices 560. The communicationmodule 514 may send and/or receive transmissions to or from the publicdevice 550 and/or the mobile device 550. The server 505 may beconfigured to receive a second movement data for a first mobile device550 that is distinct from the public device at 520. The server 505 maydetermine that the first movement data matches (or is above a predefinedthreshold value of similarity) the second movement data at 530 andassociate the public device 550 with the first mobile device 560 at 540as described earlier. In some configurations, the server 505 may sendmovement data for the first target to the public device 550 and comparethe sent movement data for the target to the movement data received fromthe mobile device 560 to determine whether a match exists.

A stringency or tolerance requirement for a match between the firstmovement data and the second movement data may be predetermined. Forexample, a threshold level of variance and/or standard deviation may beestablished in a pattern comparison algorithm. For any comparison of thefirst movement data and second movement data, if the determined degreeof match or similarity is below the threshold level, then it may bedeemed insufficient to be deemed a match and an association between thepublic device and the mobile device may be denied. For example, secondmovement data that is only 90% similar to the first movement data may bedeemed a sufficient match for an association to be made between thepublic device and the mobile device because it is greater than or equalto the threshold value for a match (90% in this example). Similarly, auser may only attempt to match a portion of the target's movement withthe mobile device. A threshold may be established for the minimumportion (e.g., length) of a pattern to be required for a match to bedetermined. For example, if a bouncing ball is shown on the publicdevice, and each bounce of the ball is at a different height and/ordirection, a user may begin attempting to mimic pattern of the bouncingball with the mobile device midway through the ball's pattern. That is,if the apex of each bounce is plotted as coordinates, each apex of abounce may have at least one different x and/or y coordinate value. Thesystem may perform a comparison between the movement data of the targetand the movement data for the mobile device despite having movement datafrom the mobile device for only a portion of the pattern performed bythe target. As another example, the public device may show a sequence ofshapes and ask a user to trace the shapes with the user's mobile device.If a user only traces a portion of a square shape, a complete triangleshape, a complete oval shape, and a complete trapezoid shape, the systemmay determine that a match exists between the first movement data andsecond movement data for the triangle, oval, and trapezoid. Thus, thesystem may receive more movement data than is necessary for it toperform a comparison for or determine a match between the first movementdata and the second movement data.

In some configurations, a cloud service may be an intermediary betweenthe server as shown in FIG. 5, for example, and the mobile device andpublic device. For example, the cloud service may communicate to eachdevice independent of the other. The cloud service may operate a website to which the mobile device and the public device connect. The cloudservice may transmit data received from each device to the server andthe server may perform the comparison of the first movement data and thesecond movement data. The server may indicate to the cloud service thata match has been detected between the public device and the mobiledevice. In response to the indication of a match, the cloud service mayindicate to the mobile device that is associated with the public device.The public device's display may show a different interface which may bemanipulated or controlled by the user's mobile device, for example. Theuser's mobile device, upon receiving an indication of a match, may bedirected to a web page through which the mobile device's movement may betranslated into navigation inputs for the web page interface shown onthe public device. For example, a movement of the mobile device to theleft may move a cursor to the left on the public device. A user may makea selection of content by, for example, shaking the mobile device orpressing a graphical button on the mobile device's screen.

A system is disclosed in an implementation that includes a server asdescribed earlier. An example of the system is provided in FIG. 6. Theserver 605 may be configured to send or dispatch first movement data fora first target to a public device 650 that includes a display at 610.The public device 650 may utilize the target data to generate an imagefor display to a viewing audience. Thus, the public device may receivemovement data for the target and display a movement of the first targetbased on the movement data. The server 605 may receive second movementdata for a first mobile device 660 at 620 as previously described. Themobile device 660, the server 605, and the public device 650 may each bephysically distinct devices that communicate with one another, directlyor indirectly, through a wireless protocol (e.g., cellular radio,Internet communication, a wireless access point, etc.). The publicdevice 650 and the mobile device 660 may be proximate to one another andat a location that is distinct from that of the server 605. As statedearlier, the server 605 may be a part of the public device 650. In suchcases, a single processor may exist as between the public device 650 andthe server 605. The server 605 may determine that the first movementdata matches the second movement data at 630 and associate the publicdevice 650 with the first mobile device 660 at 640 as described earlier.

In an implementation, an example of which is provided in FIG. 7, aserver may send or provide instructions for first movement data for afirst target to a public device at 710 as described above. The publicdevice may include a display on which the first target (e.g., a bouncingball) is shown. For example, the public device may receive instructionsto display a racecar making turns on a race track. The user wishing toconnect or interact with the sign may be instructed to drive the racecar by moving the user's mobile device (e.g., a smartphone) as though itwere a steering wheel. The server may receive second movement data for afirst mobile device that is distinct from the public device at 720. Theserver may be at a different physical location than the public deviceand the first mobile device or it may be collocated, integrated with, orotherwise a part of the public device. For example, the public deviceand the first mobile device may be co-located (e.g., within three metersof one another) and the server may be located in a different countryfrom those two devices. The server may determine that the first movementdata matches the second movement data 730. The public device may beassociated with the first mobile device at 740. The association may bebased on the determination that the first movement data matches thesecond movement data.

Implementations of the presently disclosed subject matter may beimplemented in and used with a variety of component and networkarchitectures. FIG. 1 is an example computer 20 suitable forimplementations of the presently disclosed subject matter. The computer20 includes a bus 21 which interconnects major components of thecomputer 20, such as a central processor 24, a memory 27 (typically RAM,but which may also include ROM, flash RAM, or the like), an input/outputcontroller 28, a user display 22, such as a display screen via a displayadapter, a user input interface 26, which may include one or morecontrollers and associated user input devices such as a keyboard, mouse,and the like, and may be closely coupled to the I/O controller 28, fixedstorage 23, such as a hard drive, flash storage, Fibre Channel network,SAN device, SCSI device, and the like, and a removable media component25 operative to control and receive an optical disk, flash drive, andthe like.

The bus 21 allows data communication between the central processor 24and the memory 27, which may include read-only memory (ROM) or flashmemory (neither shown), and random access memory (RAM) (not shown), aspreviously noted. The RAM is generally the main memory into which theoperating system and application programs are loaded. The ROM or flashmemory can contain, among other code, the Basic Input-Output system(BIOS) which controls basic hardware operation such as the interactionwith peripheral components. Applications resident with the computer 20are generally stored on and accessed via a computer readable medium,such as a hard disk drive (e.g., fixed storage 23), an optical drive,floppy disk, or other storage medium 25.

The fixed storage 23 may be integral with the computer 20 or may beseparate and accessed through other interfaces. A network interface 29may provide a direct connection to a remote server via a telephone link,to the Internet via an internet service provider (ISP), or a directconnection to a remote server via a direct network link to the Internetvia a POP (point of presence) or other technique. The network interface29 may provide such connection using wireless techniques, includingdigital cellular telephone connection, Cellular Digital Packet Data(CDPD) connection, digital satellite data connection or the like. Forexample, the network interface 29 may allow the computer to communicatewith other computers via one or more local, wide-area, or othernetworks, as shown in FIG. 2.

Many other devices or components (not shown) may be connected in asimilar manner (e.g., document scanners, digital cameras and so on).Conversely, all of the components shown in FIG. 1 need not be present topractice the present disclosure. The components can be interconnected indifferent ways from that shown. The operation of a computer such as thatshown in FIG. 1 is readily known in the art and is not discussed indetail in this application. Code to implement the present disclosure canbe stored in computer-readable storage media such as one or more of thememory 27, fixed storage 23, removable media 25, or on a remote storagelocation.

FIG. 2 shows an example network arrangement according to animplementation of the disclosed subject matter. One or more clients 10,11, such as local computers, smart phones, tablet computing devices, andthe like may connect to other devices via one or more networks 7. Thenetwork may be a local network, wide-area network, the Internet, or anyother suitable communication network or networks, and may be implementedon any suitable platform including wired and/or wireless networks. Theclients may communicate with one or more servers 13 and/or databases 15.The devices may be directly accessible by the clients 10, 11, or one ormore other devices may provide intermediary access such as where aserver 13 provides access to resources stored in a database 15. Theclients 10, 11 also may access remote platforms 17 or services providedby remote platforms 17 such as cloud computing arrangements andservices. The remote platform 17 may include one or more servers 13and/or databases 15.

More generally, various implementations of the presently disclosedsubject matter may include or be implemented in the form ofcomputer-implemented processes and apparatuses for practicing thoseprocesses. Implementations also may be implemented in the form of acomputer program product having computer program code containinginstructions implemented in non-transitory and/or tangible media, suchas floppy diskettes, CD-ROMs, hard drives, USB (universal serial bus)drives, or any other machine readable storage medium, wherein, when thecomputer program code is loaded into and executed by a computer, thecomputer becomes an apparatus for practicing implementations of thedisclosed subject matter. Implementations also may be implemented in theform of computer program code, for example, whether stored in a storagemedium, loaded into and/or executed by a computer, or transmitted oversome transmission medium, such as over electrical wiring or cabling,through fiber optics, or via electromagnetic radiation, wherein when thecomputer program code is loaded into and executed by a computer, thecomputer becomes an apparatus for practicing implementations of thedisclosed subject matter. When implemented on a general-purposemicroprocessor, the computer program code segments configure themicroprocessor to create specific logic circuits. In someconfigurations, a set of computer-readable instructions stored on acomputer-readable storage medium may be implemented by a general-purposeprocessor, which may transform the general-purpose processor or a devicecontaining the general-purpose processor into a special-purpose deviceconfigured to implement or carry out the instructions. Implementationsmay be implemented using hardware that may include a processor, such asa general purpose microprocessor and/or an Application SpecificIntegrated Circuit (ASIC) that implements all or part of the techniquesaccording to implementations of the disclosed subject matter in hardwareand/or firmware. The processor may be coupled to memory, such as RAM,ROM, flash memory, a hard disk or any other device capable of storingelectronic information. The memory may store instructions adapted to beexecuted by the processor to perform the techniques according toimplementations of the disclosed subject matter.

In situations in which the implementations of the disclosed subjectmatter collect personal information about users, or may make use ofpersonal information, the users may be provided with an opportunity tocontrol whether programs or features collect user information (e.g., auser's performance score, a user's work product, a user's providedinput, a user's geographic location, and any other similar dataassociated with a user), or to control whether and/or how to receiveinstructional course content from the instructional course provider thatmay be more relevant to the user. In addition, certain data may betreated in one or more ways before it is stored or used, so thatpersonally identifiable information is removed. For example, a user'sidentity may be treated so that no personally identifiable informationcan be determined for the user, or a user's geographic locationassociated with an instructional course may be generalized wherelocation information is obtained (such as to a city, ZIP code, or statelevel), so that a particular location of a user cannot be determined.Thus, the user may have control over how information is collected aboutthe user and used by the public device as disclosed herein.

The foregoing description, for purpose of explanation, has beendescribed with reference to specific implementations. However, theillustrative discussions above are not intended to be exhaustive or tolimit implementations of the disclosed subject matter to the preciseforms disclosed. Many modifications and variations are possible in viewof the above teachings. The implementations were chosen and described inorder to explain the principles of implementations of the disclosedsubject matter and their practical applications, to thereby enableothers skilled in the art to utilize those implementations as well asvarious implementations with various modifications as may be suited tothe particular use contemplated.

What is claimed is:
 1. A computer-implemented method comprising:transmitting an instruction for a computing device to move one or morevisual targets on a display associated with the computing device;receiving motion data corresponding to motion of a mobile computingdevice; determining that the motion of the mobile computing device isassociated with the motion of one or more of the visual targets on thedisplay; and in response to determining that the motion of the mobilecomputing device is associated with the motion of the one or more of thevisual targets on the display, pairing the mobile computing device with(i) the display, or (ii) the computing device associated with thedisplay.